package com.samuel.blog.service;

import java.util.List;

import com.samuel.blog.entity.AuthorEntity;
import com.samuel.blog.entity.JurisdictionEntity;
import com.samuel.blog.entity.RoleEntity;

public interface AuthorService  extends BaseService<AuthorEntity, String> {

	/**
	 * 根据手机号码查询账号
	 * @param phone
	 * @return
	 */
	AuthorEntity getByPhone(String phone);

	/**
	 * 根据真实姓名查询账号
	 * @param realName
	 * @return
	 */
	AuthorEntity getByRealName(String realName);

	/**
	 * 根据昵称查询账号
	 * @param userName
	 * @return
	 */
	AuthorEntity getByUserName(String userName);

	/**
	 * 根据id批量逻辑删除
	 * @param ids
	 * @return
	 */
	boolean deleteBatchByIds(String[] ids);

	/**
	 * 保存作者和角色关系
	 * @param authorId
	 * @param roleId      角色关系主键集合
	 * @return
	 */
	int saveAuthorRole(String authorId, String roleId);

	/**
	 * 登录后的 将角色信息，权限 保存在redis里面
	 * @param authorEntity
	 */
	void saveRedis(AuthorEntity authorEntity);

	/**
	 * 根据key 查询角色
	 * @return
	 */
	RoleEntity selectRoleByRedis(String authorId);

	/**
	 * 根据key查询权限
	 * @param authorId
	 * @return
	 */
	List<JurisdictionEntity> selectJurByRedis(String authorId);

}
